Variable-length instruction formats are widely used by many existing computer systems. Variable-length instruction formats generally provide higher instruction density and smaller code size than fixed-length instruction formats.
A variable-length instruction can be interpreted or decoded in two parts. First, the prefix of the instruction is read and interpreted to determine the instruction length. Prefix reading can be a multi-staged operation. Secondly, the rest of the instruction is read. As the second part of the operation is conditional upon the value of the prefix, the execution of the instructions cannot be easily pipelined. Such performance degradation in pipelining can be seen in both virtualized systems and non-virtualized systems.